package play.modules.s3blobs;
import play.Logger;
import play.Play;
import play.PlayPlugin;
import play.exceptions.ConfigurationException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3Client;
public class S3Blobs extends PlayPlugin {
@Override
public void onApplicationStart() {
if (!ConfigHelper.getBoolean("s3.storage.enabled", true)) {
Logger.info("S3Blobs module disabled");
return;
}
Logger.info("Starting the S3Blobs module");
if (!Play.configuration.containsKey("aws.access.key")) {
throw new ConfigurationException("Bad configuration for s3: no access key");
} else if (!Play.configuration.containsKey("aws.secret.key")) {
throw new ConfigurationException("Bad configuration for s3: no secret key");
} else if (!Play.configuration.containsKey("s3.bucket")) {
throw new ConfigurationException("Bad configuration for s3: no s3 bucket");
}
S3Blob.s3Bucket = Play.configuration.getProperty("s3.bucket");
S3Blob.serverSideEncryption = ConfigHelper.getBoolean("s3.useServerSideEncryption", false);
String accessKey = Play.configuration.getProperty("aws.access.key");
String secretKey = Play.configuration.getProperty("aws.secret.key");
AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
S3Blob.s3Client = new AmazonS3Client(awsCredentials);
if (!S3Blob.s3Client.doesBucketExist(S3Blob.s3Bucket)) {
S3Blob.s3Client.createBucket(S3Blob.s3Bucket);
}
}
}